package org.jeecg.common.modules.doctor.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.jeecg.common.modules.doctor.entity.DoctorRegister;
import org.jeecg.common.modules.doctor.entity.DoctorRegisterRecord;
import org.jeecg.common.modules.doctor.vo.DoctorRegisterKeyVo;
import org.jeecg.common.modules.doctor.vo.DoctorRegisterParamVo;
import org.jeecg.common.modules.doctor.vo.DoctorRegisterPartVo;
import org.jeecg.common.modules.doctor.vo.DoctorRegisterVo;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

/**
 * @Description: doctor_register
 * @Author: jeecg-boot
 * @Date:   2020-12-18
 * @Version: V1.0
 */
public interface IDoctorRegisterService extends IService<DoctorRegister> {
    /**
     * 检测该医生是否有挂号信息
     */
    int checkRegister(String doctorId);
    /**
     * 获取挂号信息
     * @param visitTime
     * @param dataStart
     * @param pageSize
     * @return
     */
    List<DoctorRegisterVo> getInfoList(String doctorName,String hospitalId,String departmentId,String visitTime, Integer dataStart, Integer pageSize);

    /**
     * 获取挂号条数
     * @param visitTime
     * @return
     */
    Integer getDoctorRegisterCount(String doctorName,String hospitalId,String departmentId,String visitTime);

    /**
     * 根据医生id和出诊的时间片段查询挂号信息
     * @param doctorId
     * @param visitPart
     * @return
     */
    DoctorRegister getDoctorRegisterByDoctorIdAndVisitTimePart(String doctorId,String visitTime,String visitPart);

    /**
     * 出诊日期排重
     */
    List<DoctorRegisterKeyVo> getVisitTime(String doctorId,String nowDate);

    /**
     * 根据出诊日期获取当天上午、下午、晚上的出诊信息
     */
    List<DoctorRegisterParamVo> getRegisterVisitPart(String visitTime) throws ParseException;

    /**
     * 查询患者挂号页面的挂号信息
     */
    DoctorRegisterPartVo getRegisterPart(String doctorRegisterId);

    DoctorRegisterVo queryDoctorsVisitTime(DoctorRegisterVo vo);

    List<DoctorRegisterVo> getDoctorRegisterHospital(String doctorId, String startDate, String endDate,String registerHospitalId);

    List<DoctorRegisterVo> queryOrderIsHave(DoctorRegisterVo vo);
    List<DoctorRegisterVo> queryOrderIsHaveNew(DoctorRegisterVo vo);
}
